local TagsController = {}
local vaild = require 'library.vaild'
local db = require 'models.db'
local helper = require 'library.helpers'
local page = require 'library.pageobj'

function TagsController:index()
    local p = {}
    local page_params = {}
    page_params['page']=":page:"
    local get = self:getRequest():getParams()
   
    local tags=db:new('tags') 

    local pageobj = page:new(tags:count(),12,tonumber(get['page']),helper:url('admin/tags/index',page_params));
    local res = tags:order('id desc'):limit(pageobj:limit()):get_list()

    tags:clear()

    p['page'] = pageobj;
    p['tags'] = res;

   return self:display(p)
end

function TagsController:create()
    local tagsdb=db:new('tags')
    local p = {
       url=helper:url('admin/tags/store'),
       tag={}, 
    }
    return self:display('admin.tags/edit.html',p)
end

function TagsController:store()
    local tagsdb=db:new('tags')
    local post=self:getRequest():POST()

    local id=helper:intval(post['id'])
    local tag={}
    if id>0 then
        tag=tagsdb:where('id=?',id):get_one()
        if helper:is_empty_table(tag) then
            return helper:show_msg(1,'错误,没有找到记录',{url=helper:url('admin/tag/index')});
        end
    end
    self:save(tag)
end
function TagsController:save(tag)

    local post=self:getRequest():POST()
    local vaild_my=vaild:new(post);
    vaild_my:add('tag_name','required|max_length(50)','tag error');

    local now=ngx.localtime()

    if vaild_my:run() then
        local tagsdb=db:new('tags')
        if helper:is_empty_table(tag) then
            tag['created_at']=now
        end
        tag['tag_name']=post['tag_name']
        tag['updated_at']=now

        local ret=tagsdb:replace(tag)

        if ret then
            self:redirect(helper:url('admin/tags/index'))
        end
    end
    helper:show_msg(1,'保存失败',{url=helper:url('admin/tags/index')});
end

function TagsController:edit()
    local p = {}
    local get = self:getRequest():getParams()
    local id=helper:intval(get['id']) 
    local tagsdb=db:new('tags')

    p['tag']=tagsdb:where("id=?",id):get_one()
    if p['tag'] then
        p['url']=helper:url('admin/tags/store')
        return self:display(p)
    else
        return helper:show_msg(1,'错误,没有找到记录',{url=helper:url('admin/tags/index')});
    end
end

function TagsController:destroy()
    local p = {}
    local post=self:getRequest():POST()

    local id=helper:intval(post['id']) 

    if id>0 then
        local tagsdb=db:new('tags')
        tagsdb:where('id=?',id):delete()
        self:redirect(helper:url('admin/tags/index'))
    end
    return helper:show_msg(1,'错误,没有找到记录',{url=helper:url('admin/tags/index')});
end

return TagsController
